﻿#region Código Gerado Pela Fábrica de Software (Using)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using EnterpriseLibraryWrapper;
using itau.im.entidade;
#endregion

#region Código Gerado Pela Fábrica de Software (Namespace)
namespace itau.im.negocio
{
    #region Código Gerado Pela Fábrica de Software (Interface)
    
    [ServiceContract]
    public interface IParametroAtribuicaoBS
    {
        #region Código Gerado Pela Fábrica de Software (Métodos)

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ParametroRegra> ObterParametrosPorProdutoEData(int codigoProdutoFinanceiro, int codigoProdutoFinanceiroDerivado, DateTime dataInicioVigencia);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ParametroAtribuicao> ObterParametrosAtribuicaoPreenchidos(int codigoCurva, int codigoGrupoParametros, DateTime dataInicioVigencia);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ParametroAtribuicao> ObterParametrosPorParametrosPelaRegra(IList<ParametrizacaoAtribuicao> parametros);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<Unidade> ObterUnidades();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        ParametroAtribuicao ObterParametroAtribuicao(int codigo);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<DominioParametroAtribuicao> ObterRegistrosDominio(int codigoParametro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<DominioParametroAtribuicao> ObterTodosRegistrosDominio();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<UnidadeTipoParametroValor> ObterUnidadesPorTipoParametro();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<TipoParametroValor> ObterTiposParametroValor();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ParametroAtribuicao> ObterParametros();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void CriarParametroAtribuicao(ParametroAtribuicao parametroAtribuicao);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void AtualizarParametroAtribuicao(ParametroAtribuicao parametroAtribuicao, int tipoAlteracaoDominio);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void ExcluirParametroAtribuicao(ParametroAtribuicao parametroAtribuicao);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        bool ValidaAlteracaoDominio(IList<DominioParametroAtribuicao> listaDominioParametroAtribuicao);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        bool ValidaExclusaoDominio(DominioParametroAtribuicao dominioParametroAtribuicao);

        #endregion
    }
    #endregion
}
#endregion